﻿using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using CategoryTest.View;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CategoryTest
{
    [Transaction(TransactionMode.Manual)] // 或者 ReadOnly，取决于是否需要修改模型
    [Regeneration(RegenerationOption.Manual)]
    public class Command : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            try
            {
                // 创建并显示 WPF 窗口
                MainWindow mainWindow = new MainWindow(commandData);
                // 使用 ShowDialog() 使窗口成为模态窗口
                // 如果需要非模态窗口，使用 mainWindow.Show()，但需要处理 Revit API 调用的线程问题 (IExternalEventHandler)
                mainWindow.ShowDialog();

                return Result.Succeeded;
            }
            catch (Exception ex)
            {
                message = $"运行插件时出错: {ex.Message}\n{ex.StackTrace}";
                TaskDialog.Show("错误", message);
                return Result.Failed;
            }
        }
    }
}
